package practice;

// 扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），并且后续询问用户是否要删除该文件

import java.io.File;
import java.util.Scanner;

public class Demo1 {
    private static void getFiles(File file,String toDelete) {
        File[] files = file.listFiles();  // 但是只是一层
        // 先判空
        if(files == null) {
            // 空的文件夹
            return;
        }
        // 遍历判断+递归
        for (File f:files) {
            if(f.isDirectory()) {
                // 是目录：递归
                getFiles(f,toDelete);
            } else {
                // 这里也可以直接在方法中进行判断是否包含关键字！

                // 是文件，就进行判断是否包含
                if(f.getName().contains(toDelete)) {
                    // 询问删除
                    delete(f,toDelete);
                }
            }

        }
    }

    private static void delete(File f, String toDelete) {
        // 询问删除
        System.out.println("文件名为" + f.getName() + "中包含了关键字"+toDelete);
        System.out.println("请问是否确认删除该文件（Y/N)");
        Scanner in = new Scanner(System.in);
        String ret = in.next();
        // 引用类型比价相等
        if(ret.equals("Y") || ret.equals("y")) {
            f.delete();
            System.out.println("确认删除成功！");
        } else if(ret.equals("N") || ret.equals("n")) {
            System.out.println("取消删除！");
        } else {
            System.out.println("输入错误！");
        }
    }

    public static void main(String[] args) {
        // 输入要扫描的路径+关键字
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要扫描的路径：");
        File file = new File(in.next());// 判断该路径/文件夹是否存在!!（注意判断方法）
        if(!file.isDirectory()) {
            System.out.println("您输入的目录不存在！");
            return;  // 不存在就直接return
        }

        System.out.println("请输入查询的关键字：");
        String toDelete = in.next();


        // 遍历该路径：找所有的普通文件并询问删除
        getFiles(file,toDelete);

    }
}
